import axios from 'axios'
import { NotificAtion } from "@/plugins/notification";
import {
  App
} from "@/plugins/AppInstance";

const _axios = axios.create();


_axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  config => {
    config.baseURL = '/api/'
    config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
    config.timeout = 6000
    config.headers = {
      'Content-Type': 'application/json',
    }
  }
  // config.headers['Authorization'] = `bearer ${localStorage.getItem('token')}`
  return config;
  
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
_axios.interceptors.response.use(function (response) {
  console.log('axios',response);
  // if (response.data.code > 0) {
  //   return response.data;
  // } else {
  //   return Promise.reject(response.data);
  // }
  return response.data;

}, function (error) {
  // 对响应错误做点什么
  console.log(error);
  switch (error.response.status) {
    case 403:
      // notification.error({
      //   message: 'Forbidden',
      //   description: error.response.data.message
      // })
      NotificAtion(error.response.message)
      break;
    case 402:
      // notification.error({
      //   message: 'Forbidden',
      //   description: error.response.data.message
      // })
      NotificAtion(error.response.message)
      break;
    case 401:
      // notification.error({
      //   message: 'Unauthorized',
      //   description: '授权验证失败，请重新登录'
      // })
      NotificAtion(error.response.message)
      App.$router.push({
        path: '/login'
      })
      break;
    case 500:
        // notification.error({
        //   message: '500',
        //   description: '服务器开小差，请稍后重试'
        // })
        NotificAtion(error.response.message)
      break;

    default:
      break;
  }
  return Promise.reject(error);
});

export default _axios
